CSE 3541/5541 Computer Game and Animation Techniques

Overview

This course acts as an introduction to the areas of computer graphics, computer games, and computer animation and is a prerequisite to CSE capstone design courses in game development and animation. We will examine algorithms and data structures in several areas: foundations of computer graphics, rendering, procedural animation (physics and AI), interpolation, and select specialized topics. As one of the core-choice application courses, you will gain experience in event-driven programming and graphics-based applications and user interfaces.

Projects/Labs

The main work in this class involves writing a series of small programs that implement a variety of basic techniques, each related to one of the topic areas listed above. You will use Unity/C# on your own machines.

Instructor:
Roger Crawfis ( crawfis.3@osu.edu ) - Do not add buckeyemail!
Office: DL683
Office hours: Tuesdays 1-2pm and Thursday 5:10-6:00 if needed / by appointment ; finals week office hours by appointment only

Graduate TA:
Xi Chen (.10183) Office: Baker Systems 406
Office hours: TR 12:30-2:00pm, and by appointment

Undergrad helper (previously has taken this course):
(TBD)


General Course Information

Pre-requisites
CSE 3901 or CSE 3902 or 3903
Anyone taking this class should be a competent programmer and know the basics of 3D Euclidean geometry. It also helps if you are familiar with basic linear algebra. The stronger programmer you are, the more graphics experience you have, and the more math you know, the better off you'll be.

Class Attendance
Attendance will be taken during the first week, as part of handling enrollment adds and drops. Most, but not all, of the information covered in class meetings can be found in the reference books or on the web - but you are responsible for anything discussed in class. If you miss a class, get notes from someone who attended.

Disability Statement
Any student who feels they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. The Office for Disability Services will help in coordinating reasonable accommodations for students with documented disabilities.


Texts

The class schedule spreadsheet includes listings of chapters from the various books that are most relevant for each class meeting.

Primary reference (Needs fixed)

Safari (O'Reilly Learning link)

https://www.oreilly.com/library/view/temporary-access/. Use "Not listed? Click Here" - top entry and sign in with your OSU email.


Secondary texts by category

Autumn 2021 course notes and materials


Class Schedule (last update: 12-09-2021)

Lecture Notes

Assignments as they become available

  1. Lab1 - Setting up Unity, input systems and movement / positioning with vectors.
  2. Lab2 -Maze creation
  3. Lab3 - Putting it together, walking through your maze with a first-person camera
  4. Lab4 - Lighting in Unity
  5. Lab5 - AI agents
  6. Lab6 - Character Animation
  7. Lab7 - Final Project

Resources

Unity Assets

  1. https://assetstore.unity.com/packages/3d/props/exterior/polygon-prototype-low-poly-3d-art-by-synty-137126
  2. https://assetstore.unity.com/packages/3d/props/polygon-starter-pack-low-poly-3d-art-by-synty-156819 (Free)
  3. https://assetstore.unity.com/packages/2d/textures-materials/gridbox-prototype-materials-129127 (Free)
  4. https://assetstore.unity.com/packages/3d/environments/bblock-61644

YouTube (Unity)

  1. Jason Weimann – Angry Birds tutorial (2D): https://www.youtube.com/watch?v=Lu76c85LhGY
  2. Brackeys – Path Dash tutorial (old input system): https://www.youtube.com/playlist?list=PLPV2KyIb3jR5QFsefuO2RlAgWEz6EvVi6
  3. Input System: https://unity.com/features/input-system and https://www.youtube.com/watch?v=5tOOstXaIKE
  4. Why use Unity Input System: https://www.youtube.com/watch?v=GyKBoDF_Oxo
  5. SamYam - Input System playlist: https://www.youtube.com/playlist?list=PLKUARkaoYQT2nKuWy0mKwYURe2roBGJdr
  6. Unity Learn – Junior Programmer: https://learn.unity.com/pathway/junior-programmer
  7. Unity Scripting (and basic C#): https://www.youtube.com/playlist?list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B
  8. Custom Inspector and Attributes: https://www.youtube.com/watch?v=9udeBeQiZSc

YouTube (Math)

  1. https://www.youtube.com/watch?v=e3z91RqZPAk&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B&index=9
  2. https://www.youtube.com/watch?v=32JkMANaMpk&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B&index=12
  3.  http://s2.smu.edu/propulsion/Pages/vector.html
  4. https://www.youtube.com/watch?v=MOYiVLEnhrw
  5.  

Mixamo

  1. SamYam: https://www.youtube.com/watch?v=583R9LgRZPA
  2.  

YouTube (AI and others)

  1. Classes in Unity: https://www.youtube.com/watch?v=odKtPBsyFnw&list=PLX2vGYjWbI0S9-X2Q021GUtolTqbUBB9B&index=21
  2. Imphenzia – Key Frame Animation: https://www.youtube.com/watch?v=yjjLD3h3yRc
  3. Imphenzia – Create a Low Poly Character in Blender: https://www.youtube.com/watch?v=eBOcbYHexAM
  4.